Programmieren – 3. Verzweigungen

Ingenieurinformatik Teil 1, Wintersemester 2026/27

David Straub

Programmieren – D. Straub

Warm-up: Was gibt der Code aus?

Aufschreiben, bevor wir es ausführen:

x = 10
x = x + 5
print(x % 4)
print(type(x / 5))
Programmieren – D. Straub

Heute lernen Sie

  • Programme, die Entscheidungen treffen: if, elif, else
  • Bedingungen formulieren mit Vergleichen: ==, !=, <, >, <=, >=
  • Bedingungen kombinieren mit and, or, not
Programmieren – D. Straub

Bedingungen

Programmieren – D. Straub

Wahr oder falsch: der Typ bool

Vergleiche liefern einen Wahrheitswert – True oder False:

temperatur = 35
print(temperatur > 30)
print(temperatur == 35)
print(temperatur != 35)
print(type(temperatur > 30))
  • == gleich, != ungleich
  • <, <=, >, >= wie in der Mathematik
Programmieren – D. Straub

= speichert, == vergleicht

spannung = 12          # speichert 12 in spannung
print(spannung == 12)  # vergleicht: True
print(spannung == 13)  # vergleicht: False

Ein Zeichen Unterschied, zwei völlig verschiedene Bedeutungen.

Programmieren – D. Straub

Verzweigungen

Programmieren – D. Straub

Entscheidungen mit if

temperatur = 35

if temperatur > 30:
    print("Warnung: zu heiß!")

print("Messung beendet.")
  • Nach if steht eine Bedingung, dann ein Doppelpunkt
  • Der eingerückte Block läuft nur, wenn die Bedingung True ist
  • Die letzte Zeile ist nicht eingerückt – sie läuft immer
  • Einrückung: 4 Leerzeichen (Tab-Taste) – fehlt sie, meldet Python einen IndentationError
Programmieren – D. Straub

Zwei Wege: if / else

messwert = 87

if messwert > 100:
    print("Grenzwert überschritten")
else:
    print("Alles im Bereich")
Programmieren – D. Straub

Mini-Aufgabe (3 min)

messwert = 87

if messwert > 100:
    print("Grenzwert überschritten")
else:
    print("Alles im Bereich")
  1. Führen Sie den Code aus
  2. Ändern Sie genau einen Operator, sodass der else-Zweig beim Wert 87 nicht läuft
  3. Zurück zum Original: Bei welchem Messwert laufen beide Zweige? Probieren Sie es aus
Programmieren – D. Straub

Achtung typischer Fehler

alter = 20

if alter = 18:
    print("genau 18")
  Cell In[1], line 3
    if alter = 18:
       ^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
  • In einer Bedingung wird verglichen, nie gespeichert
  • Python sagt es Ihnen sogar – Fehlermeldungen lesen lohnt sich
  • Den Vorschlag := brauchen Sie in diesem Kurs nicht
Programmieren – D. Straub

Mehr als zwei Wege: elif

ladezustand = 25    # in Prozent

if ladezustand < 10:
    print("Kritisch: sofort laden")
elif ladezustand < 30:
    print("Niedrig")
else:
    print("OK")
  • Bedingungen werden von oben nach unten geprüft
  • Nur der erste wahre Zweig läuft – danach ist Schluss
  • Darum reicht ladezustand < 30 im zweiten Zweig: wer dort ankommt, hat schon mindestens 10
  • elif-Zweige dürfen beliebig viele folgen – für fünf Stufen einfach vier elif
Programmieren – D. Straub

Wie oft darf was vorkommen?

Wie oft? Wo? Bedingung?
if genau 1× immer am Anfang ja
elif beliebig oft (auch 0×) zwischen if und else ja
else 0× oder 1× immer am Schluss nein
  • if allein ist vollständig – elif und else sind optional
  • else fängt alles auf, was übrig bleibt – darum braucht es keine Bedingung
  • Jedes neue if startet eine neue, unabhängige Verzweigung
Programmieren – D. Straub

Achtung typischer Fehler

if ladezustand < 10:
    print("Kritisch: sofort laden")
elif ladezustand < 30:
    print("Niedrig")
else ladezustand >= 30:
    print("OK")
  Cell In[1], line 5
    else ladezustand >= 30:
         ^
SyntaxError: expected ':'
  • Hinter else kommt direkt der Doppelpunkt
  • Sie wollen eine Bedingung hinschreiben? Dann ist es ein elif
Programmieren – D. Straub

Vorhersage-Aufgabe (2 min)

Was gibt der Code aus – bei diesen Werten? Aufschreiben!

ladezustand = 5

if ladezustand < 10:
    print("Kritisch: sofort laden")
elif ladezustand < 30:
    print("Niedrig")
else:
    print("OK")

Und was passiert bei ladezustand = 10? Bei ladezustand = 30? Bei ladezustand = 100?

Programmieren – D. Straub

Bedingungen kombinieren

Programmieren – D. Straub

and, or, not

druck = 95
temperatur = 25

print(druck > 90 and temperatur > 30)
print(druck > 90 or temperatur > 30)
print(not druck > 90)
  • and: beide Bedingungen müssen wahr sein
  • or: mindestens eine muss wahr sein
  • not: kehrt den Wahrheitswert um
Programmieren – D. Straub

and oder or?

Ein Messwert ist gültig zwischen 1 und 100. Wann ist er ungültig?

wert = 0

if wert < 1 ??? wert > 100:
    print("Ungültiger Messwert!")

Was gehört an die Stelle von ??? – und warum?

Programmieren – D. Straub

Warum ist hier or richtig – und nicht and?

if wert < 1 or wert > 100:
    print("Ungültiger Messwert!")
  • Sprachgefühl sagt: „kleiner als 1 und größer als 100 ist verboten“
  • Logik sagt: keine Zahl ist gleichzeitig kleiner als 1 und größer als 100 – mit and wäre die Bedingung immer falsch
  • Faustregel: „ungültig“ ist fast immer ein or aus mehreren Verstößen
Programmieren – D. Straub

Vorhersage-Aufgabe (3 min)

Aufschreiben, dann ausführen:

druck = 95
temperatur = 25

if druck > 90 and temperatur > 30:
    print("A")
elif druck > 90 or temperatur > 30:
    print("B")
else:
    print("C")

Und: Welche Werte für druck und temperatur führen zu A? Welche zu C?

Programmieren – D. Straub

Debug-Aufgabe (3 min)

Dieses Programm soll bei Spannungen unter 3,0 V oder über 4,2 V warnen. Es warnt aber nie. Finden Sie den Fehler:

spannung = 4.8

if spannung < 3.0 and spannung > 4.2:
    print("Warnung: Spannung außerhalb des Bereichs!")
else:
    print("Spannung ok")
Programmieren – D. Straub

Transfer

Programmieren – D. Straub

Aufgabe: Ticketpreis (Denkphase: 5 min, auf Papier)

Ein Museum hat folgende Preise:

  • unter 6 Jahren: frei
  • unter 18 oder ab 65: ermäßigt, 5 Euro
  • alle anderen: 12 Euro

Schreiben Sie ein Programm: Alter in einer Variable, Ausgabe (print) des Preises.

Notieren Sie zuerst: Welche Bedingungen? In welcher Reihenfolge?

Zusatz für Schnelle: Fangen Sie unsinnige Alter ab (negativ oder über 130) – mit welcher Ausgabe?

Programmieren – D. Straub

Gemeinsam live

Wir entwickeln die Lösung jetzt zusammen.

Programmieren – D. Straub

Mini-Check

Ohne Computer – was kommt heraus?

  1. print(5 != 3)
  2. Was ist falsch an if x = 10: – und wie heißt es richtig?
  3. alter = 70 – was liefert alter < 18 or alter >= 65?
  4. print(3 > 5 and 7 > 5)
Programmieren – D. Straub

🗳️ Zum Schluss: Was gibt das aus?

spannung = 4.5

if spannung > 3.0:
    print("ok")
elif spannung > 4.2:
    print("zu hoch")
else:
    print("zu niedrig")

A) ok

B) zu hoch

C) ok und zu hoch

D) zu niedrig

Programmieren – D. Straub

Bis nächste Woche!

Nächste Woche: Eingabe und Ausgabe – Programme, die mit Ihnen reden

Programmieren – D. Straub